//package com.cmdb.web.controller.system;
//
//import com.cmdb.common.core.domain.AjaxResult;
//import com.cmdb.common.utils.DictUtils;
//import com.cmdb.common.utils.StringUtils;
//import com.cmdb.system.domain.SysAssetGx;
//import com.cmdb.system.domain.SysAssetInfo;
//import com.cmdb.system.service.ISysAssetInfoService;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.poi.ss.usermodel.Cell;
//import org.apache.poi.ss.usermodel.DataFormatter;
//import org.apache.poi.ss.usermodel.DateUtil;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.InputStream;
//import java.time.LocalDateTime;
//import java.time.ZoneId;
//import java.time.format.DateTimeFormatter;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//@Controller
//@Slf4j
//@RequestMapping("/data/csv")
//public class filedata {
//    @Autowired
//    private ISysAssetInfoService sysAssetInfoService;
//
//    private final DataFormatter formatter = new DataFormatter();
//
//    @PostMapping("/importCsv")
//    public AjaxResult importCsv(@RequestParam("file") MultipartFile file) {
//        try (InputStream inputStream = file.getInputStream()) {
//            int importedCount = parseXlsx(inputStream);
//            return AjaxResult.success("XLSX导入成功，数量：" + importedCount);
//        } catch (Exception e) {
//            log.error("XLSX导入失败", e);
//            return AjaxResult.error("XLSX导入失败：" + e.getMessage());
//        }
//    }
//
//    public int parseXlsx(InputStream inputStream) throws Exception {
//        int count = 0;
//        try (Workbook workbook = new XSSFWorkbook(inputStream)) {
//            Sheet sheet = workbook.getSheetAt(0);
//            for (Row row : sheet) {
//                if (row.getRowNum() == 0) { // 跳过表头
//                    continue;
//                }
//
//                SysAssetInfo info = new SysAssetInfo();
//                SysAssetGx gx = new SysAssetGx();
//                //系统编号
////                getStringCellValue(row.getCell(0))
//                //单位名称
//
//                log.info("------------------------"+getStringCellValue(row.getCell(0)));
//                if(Integer.parseInt(getStringCellValue(row.getCell(0)))!=231||Integer.parseInt(getStringCellValue(row.getCell(0)))!=470){
//                    continue;
//                }
//                info.setOrgId(Integer.parseInt(DictUtils.getDictName("dept"+getStringCellValue(row.getCell(1)))));
//                info.setCreateBy(Integer.parseInt(DictUtils.getDictName("dept"+getStringCellValue(row.getCell(1))))+"");
//                info.setOrgType(DictUtils.getDictLabel("dept_type", getStringCellValue(row.getCell(2))));
//                info.setSystemName(getStringCellValue(row.getCell(3)));
//                info.setSystemType(DictUtils.getDictLabel("sys_type", getStringCellValue(row.getCell(4))));
//
//
//                info.setIsClassified(DictUtils.getDictValue("sys_is_dj", getStringCellValue(row.getCell(5))));
//                info.setSystemLevel(DictUtils.getDictLabel("sys_level", getStringCellValue(row.getCell(6))));
//                info.setBusinessSecurityLevel(DictUtils.getDictLabel("sys_sc_level", getStringCellValue(row.getCell(7))));
//                info.setServiceSecurityLevel(DictUtils.getDictLabel("sys_fw_level", getStringCellValue(row.getCell(8))));
//                info.setIsFiled(DictUtils.getDictLabel("sys_is_ba", getStringCellValue(row.getCell(9))));
//                info.setFilingNumber(getStringCellValue(row.getCell(10)));
//                info.setIsEvaluated(DictUtils.getDictValue("sys_is_pc", getStringCellValue(row.getCell(11))));
//                info.setLastEvaluateTime(getDateCellValue(row.getCell(12)));
//
//                gx.setAccessDomain(getStringCellValue(row.getCell(14)));
//                gx.setAccessIp(getStringCellValue(row.getCell(15)));
//                gx.setLocalPort(getStringCellValue(row.getCell(16)));
//                gx.setPublicMappedPort(getStringCellValue(row.getCell(17)));
//                gx.setServerIp(getStringCellValue(row.getCell(18)));
//                List<SysAssetGx> gxList = new ArrayList<>();
//                gxList.add(gx);
//                info.setSysAssetGx(gxList);
//                info.setMachineRoomAddress(getStringCellValue(row.getCell(20)));
//                info.setMachineRoomManager(getStringCellValue(row.getCell(21)));
////
////                info.setOsVersion(getStringCellValue(row.getCell(23)));
////
////                info.setMiddlewareVersion(getStringCellValue(row.getCell(25)));
////
////                info.setDatabaseVersion(getStringCellValue(row.getCell(27)));
//
////                info.setAppVersion(getStringCellValue(row.getCell(29)));
//                info.setContactPerson(getStringCellValue(row.getCell(30)));
//                info.setOfficePhone(getStringCellValue(row.getCell(31)));
//                info.setMobilePhone(getStringCellValue(row.getCell(32)));
//                info.setDevelopCompany(getStringCellValue(row.getCell(33)));
//                info.setMaintainCompany(getStringCellValue(row.getCell(34)));
//                info.setBusinessManager(getStringCellValue(row.getCell(36)));
//                info.setIsSecurityEvaluated(DictUtils.getDictValue("sys_is_pwd", getStringCellValue(row.getCell(37))));
//                info.setLastSecurityEvaluateTime(getDateCellValue(row.getCell(38)));
////                if(StringUtils.isNotEmpty(getStringCellValue(row.getCell(39)))) {
////                    info.setInfoperson(DictUtils.getDictValue("sys_info_person", getStringCellValue(row.getCell(39))));
////                }
//                info.setInfoType(DictUtils.getDictLabel("sys_info_type", getStringCellValue(row.getCell(40))));
//                String personInfoCountStr = getStringCellValue(row.getCell(41));
//                log.info("------------------------"+personInfoCountStr);
//                info.setPersoninfocount(StringUtils.isEmpty(personInfoCountStr) ?0:Integer.parseInt(personInfoCountStr));
//                sysAssetInfoService.insertSysAssetInfo(info);
//                count++;
//            }
//        }
//        return count;
//    }
//
//    private String getStringCellValue(Cell cell) {
//        if (cell == null) {
//            return "";
//        }
//        return formatter.formatCellValue(cell).trim();
//    }
//
//    private Date getDateCellValue(Cell cell) {
//        if (cell == null) {
//            return null;
//        }
//        if (DateUtil.isCellDateFormatted(cell)) {
//            return cell.getDateCellValue();
//        } else {
//            return times(getStringCellValue(cell));
//        }
//    }
//
//    public static Date times(String time){
//        if(!StringUtils.isNotEmpty(time)){
//            return null;
//        }
//        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy/M/d H:m:s");
//        LocalDateTime localDateTime;
//        try {
//            localDateTime = LocalDateTime.parse(time, inputFormatter);
//        } catch (Exception e) {
//            // Fallback for another common format
//            try {
//                inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//                localDateTime = LocalDateTime.parse(time, inputFormatter);
//            } catch (Exception e2) {
//                log.warn("Could not parse date: {}", time);
//                return null;
//            }
//        }
//
//        ZoneId zoneId = ZoneId.of("Asia/Shanghai");
//        return Date.from(localDateTime.atZone(zoneId).toInstant());
//    }
//}
